// 排序算法集合
class SortingAlgorithms {
  // 冒泡排序 - O(n²)
  bubbleSort(arr) {
    // TODO: 实现冒泡排序
    // 原地排序，返回排序后的数组
  }

  // 选择排序 - O(n²)
  selectionSort(arr) {
    // TODO: 实现选择排序
    // 原地排序，返回排序后的数组
  }

  // 插入排序 - O(n²)
  insertionSort(arr) {
    // TODO: 实现插入排序
    // 原地排序，返回排序后的数组
  }

  // 归并排序 - O(n log n)
  mergeSort(arr) {
    // TODO: 实现归并排序
    // 返回排序后的新数组
  }

  // 快速排序 - O(n log n) 平均，O(n²) 最坏
  quickSort(arr) {
    // TODO: 实现快速排序
    // 原地排序，返回排序后的数组
  }

  // 堆排序 - O(n log n)
  heapSort(arr) {
    // TODO: 实现堆排序
    // 原地排序，返回排序后的数组
  }

  // 计数排序 - O(n + k)
  countingSort(arr) {
    // TODO: 实现计数排序
    // 适用于非负整数，返回排序后的新数组
  }

  // 基数排序 - O(d * (n + k))
  radixSort(arr) {
    // TODO: 实现基数排序
    // 适用于非负整数，返回排序后的新数组
  }
}

module.exports = SortingAlgorithms
